home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / khoros.zip / KHOROS.FTP next >
Text File  |  1993-01-27  |  14KB  |  323 lines

  1.  
  2.                           KHOROS:
  3.  
  4.         AN ENVIRONMENT FOR INFORMATION PROCESSING,
  5.  
  6.         DATA VISUALIZATION, AND SOFTWARE DEVELOPMENT
  7.  
  8. THE KHOROS PROJECT
  9.  
  10. The main goal of the Khoros software project is to create
  11. and provide an integrated software development environment
  12. for information processing and data visualization. The
  13. Khoros software system is now being used as a foundation to
  14. improve productivity and promote software reuse in a wide
  15. variety of application domains.  A powerful feature of the
  16. Khoros system is the high-level, abstract visual language
  17. that can be employed to significantly boost the productivity
  18. of the researcher.
  19.  
  20. Central to the Khoros system is the need for a consistent
  21. yet flexible user interface development system that provides
  22. cohesiveness to the vast number of programs that make up the
  23. Khoros system.  Automated tools assist in maintenance as
  24. well as development of programs. The software structure that
  25. embodies this system provides for extensibility and porta-
  26. bility, and allows for easy tailoring to target specific
  27. application domains and processing environments.
  28.  
  29. OVERVIEW
  30.  
  31. The Khoros system integrates multiple user interface modes,
  32. code generators, instructional aids, data visualization,
  33. distributed computing and information processing.  The
  34. result is a comprehensive tool for computational research
  35. and development.  The Khoros infrastructure consists of six
  36. major subsystems:
  37.  
  38. (1)  A high-level visual language that may be extended to
  39.      fit the application domain.
  40.  
  41. (2)  A user interface development system consisting of a
  42.      User Interface Specification (UIS) and code generators
  43.      that use the UIS to generate code for all programs
  44.      created under the Khoros system.
  45.  
  46. (3)  An interoperable data exchange format (VIFF) supported
  47.      by a comprehensive automatic storage conversion
  48.      library.
  49.  
  50. (4)  Application specific data display and processing
  51.      libraries; image processing, digital signal processing,
  52.      numerical analysis, data and file conversion, graphics
  53.  
  54.                            - 1 -
  55.  
  56.      display, and image display.
  57.  
  58. (5)  A set of interactive X Windows-based programs address
  59.      such areas as image display, colormap manipulation,
  60.      animation, plotting, warping of image data, and surface
  61.      visualization.
  62.  
  63. (6)  A set of meta-system calls provide a foundation for
  64.      distributed computing and efficient data transport.
  65.      Khoros provides user selectable compute locations via
  66.      the visual language, computer supported cooperative
  67.      work via a distributed X mechanism, and remote access
  68.      to data via a distributed data transport server.
  69.  
  70. The software structure that embodies this system provides
  71. for extensibility and portability, and allows for easy
  72. tailoring to target specific application domains and pro-
  73. cessing environments. Khoros is a successful demonstration
  74. of how research programming, application programming, infor-
  75. mation processing, data visualization, instruction, documen-
  76. tation, and maintenance can be integrated to build a state-
  77. of-the-art software environment.
  78.  
  79. THE VISUAL LANGUAGE
  80.  
  81. The visual language of Khoros, cantata, is a graphically
  82. expressed, data-flow oriented language.  The user builds a
  83. cantata application program ("workspace") by connecting pro-
  84. cessing nodes ("glyphs") to form a data flow graph.  Glyphs
  85. are selected from the many library routines available with
  86. Khoros; the user may also create new library routines using
  87. the Khoros user interface development system, and make them
  88. available to cantata.  The visual language is considered to
  89. be large-grain because each glyph represents an entire pro-
  90. gram.  "Control" glyphs (providing if/else conditions,
  91. loops, etc) and a expression parser extend the functionality
  92. of the underlying data flow methodology.
  93.  
  94. Visual "procedures", each representing a segment of the net-
  95. work of glyphs in a workspace, can be used to add structure
  96. to the visual language and help to manage the complexity
  97. often associated with visual programming.  A dynamic execu-
  98. tion scheduler allows the user to interactively execute the
  99. entire flow graph across a heterogeneous computer network.
  100. The execution can be set to either a demand driven or data
  101. driven model depending on the application and desired level
  102. of interactivity.
  103.  
  104.                            - 2 -
  105.  
  106. USER INTERFACE DEVELOPMENT SYSTEM
  107.  
  108. The framework of every  program  in  the  Khoros  system  is
  109. defined  by  a User Interface Specification. This high-level
  110. specification is used with automatic  code  generators  that
  111. allow  Khoros  programs  to combine a UNIX-like command line
  112. user interface (CLUI) with an X-Windows based graphical user
  113. interface (GUI).  Khoros programs can be easily incorporated
  114. into the visual language that is an  integral  part  of  the
  115. Khoros  system;  the use of the code generators ensures that
  116. program user interfaces and documentation are consistent and
  117. correct.  In addition, the user interface development system
  118. provides a means  of  quickly  prototyping  new  algorithms,
  119. encourages  standard  coding  styles  and  methods,  and can
  120. potentially make the user as  productive  in  extending  the
  121. system as the original programmers were in creating it.  The
  122. software development tools listed below allow an end-user to
  123. act as a developer to extend the system.
  124.  
  125.    Program Name   Description
  126.    -----------------------------------------------------
  127.    preview        GUI display tool
  128.    composer       GUI editor
  129.    conductor      code generation tool for a GUI's
  130.    ghostwriter    code generation tool for CLUI's
  131.    kinstall       source configuration & management tool
  132.  
  133. The Khoros user interface development system provides
  134. features common to all applications, such as: (1) journal
  135. recording/playback & distributed user interfaces for X-
  136. Windows based applications, (2) re-arrangement of the graph-
  137. ical user interface without recompiling, (3) consistency of
  138. use, (4) standardized documentation format, and (5) con-
  139. sistent structured programming methodology and styles.
  140.  
  141. INTEROPERABLE DATA EXCHANGE FORMAT
  142.  
  143. The Khoros Visualization and Image File Format (VIFF) or
  144. data structure supports general geometric objects, multidi-
  145. mensional data, and a robust mapping scheme.  Storage type
  146. conversion between different architecture platforms is
  147. automatically performed by the meta-system read and write
  148. utilities; for example, DEC VAX floating point data is
  149. automatically converted to IEEE format if read on a SUN com-
  150. puter.  The consistent use of the Khoros data structure pro-
  151. motes an algorithm library that can be used in many discip-
  152. lines and supports data exchange.
  153.  
  154. As Khoros expands, there will be a need to support a set of
  155. "standard" file formats.  Currently, Khoros provides for
  156. data interchange with other systems via file format convert-
  157. ers.  Khoros supports the following file formats: TIFF, pbm,
  158. BIG, DEM, DLG, ELAS, FITS, Matlab, SUN raster, TGA, and xbm.
  159.  
  160.                            - 3 -
  161.  
  162. DATA PROCESSING LIBRARIES
  163.  
  164. Khoros includes libraries of programs that can operate on
  165. point data, one-dimensional data, two-dimensional data, mul-
  166. tiband data or N-dimensional vector data.  These operators
  167. are designed to be polymorphic, or in other words they func-
  168. tion on bit, byte, short, integer, float and complex data
  169. types.  The term also implies that the functions know to
  170. operate differently depending on the dimensionality or
  171. organization of the data.
  172.  
  173. There are two interface levels defined in the library func-
  174. tions in Khoros; the program or process interface and the
  175. function call or procedure interface.  The program interface
  176. is determined completely by the high-level user interface
  177. specification described above.  The procedure interface is
  178. currently not as well defined, but allows the procedures
  179. (functions) to be easily combined into a single program. As
  180. a note, visual programs are built by executing a set of pro-
  181. grams using the program interface.
  182.  
  183. The libraries contain over 260 programs, in the following
  184. categories: arithmetic, classification, color conversion,
  185. data conversion, file format conversion, feature extraction,
  186. frequency filtering, spatial filtering, morphology filter-
  187. ing, geometric manipulation, histogram manipulation, statis-
  188. tics, signal generation, linear operations, segmentation,
  189. spectral estimation, subregion, and transforms.
  190.  
  191. In addition, high-level graphics and display libraries are
  192. available to those who wish to create new X-Windows based
  193. applications under Khoros. These libraries act as a "visual-
  194. ization toolkit" that is layered on top of Xlib, Xtk and the
  195. Athena Widgets.
  196.  
  197.        Library   Description
  198.        ---------------------------------------------
  199.        forms     graphical user interface
  200.        utils     pop-up browsers, errors, help, etc.
  201.        gaphics   2D/3D graphics; X, Postscript, HPGL
  202.        display   image display & editing
  203.  
  204. X WINDOWS APPLICATIONS
  205.  
  206. The interactive graphical user interface programs that are
  207. part of Khoros are based on MIT X11R4 and the Athena widg-
  208. ets. Such applications written under the Khoros system are
  209. automatically endowed with a journal record and playback
  210. capability that is useful for demonstration and instruc-
  211. tional purposes.  Taken a step farther, the journal
  212. record/playback capability was extended to work on multiple
  213. displays simultaneously with a "distributed user interface
  214. controller".  This distributed user interface empowers users
  215. to execute a Khoros application which not only will appear
  216.  
  217.                            - 4 -
  218.  
  219. on multiple displays simultaneously, but which can also
  220. receive input from each of the users.
  221. Still under  development,  the  distributed  user  interface
  222. controller  will  provide a more sophisticated mechanism for
  223. instructional and  demonstration  purposes,  as  well  as  a
  224. powerful tool for a long-distance, collaborative approach to
  225. problem solving.
  226.  
  227. Program Name          Description
  228. -----------------------------------------------------------
  229. cantata               visual programming language
  230. editimage             image display & manipulation
  231. animate               image sequence display
  232. xprism2 and xprism3   2D and 3D plotting packages
  233. viewimage             surface visualization
  234. warpimage             image registration and warping
  235. concert               distributed user interface controller
  236.  
  237. META-SYSTEM FOUNDATION
  238.  
  239. Khoros is designed to operate and fully utilize a hetero-
  240. geneous computing environment.  The meta-system library pro-
  241. vides a set of function calls that extend the standard UNIX
  242. system calls to provide a network level interface.  As an
  243. example, the kopen() function can open a standard file on
  244. the local host as well as open access to:  a remote file, a
  245. socket, shared memory, a pipe, a stream, or SUN's Virtual
  246. Memory.  This simple interface provides access to network
  247. wide data transport.
  248.  
  249. The application programmer benefits from the meta-system
  250. because the task of writing distributed applications is sim-
  251. plified.  The end user benefits from the meta-system by
  252. being able to select compute locations via cantata and by
  253. being able to access remote data transparently.
  254.  
  255. The careful integration of the six Khoros subsystems summar-
  256. ized above allow it to act as a distributed collaboration
  257. environment.
  258.  
  259.  HISTORY
  260.  
  261. The Khoros project has been underway at the Department of
  262. Electrical and Computer Engineering at the University of New
  263. Mexico since January of 1987.  Previously named "XVision",
  264. the project has undergone tremendous changes in focus and
  265. scope since its beginning.  Originally conceived as a tool
  266. to improve the productivity of research,  initial software
  267. was developed to provide a consistent command line user
  268. interface for an existing library of image processing pro-
  269. grams.  The project quickly expanded to contain an image
  270. display program,  a plotting package, and code generators to
  271. automate the creation of code that was common to all pro-
  272. grams.
  273.  
  274.                            - 5 -
  275.  
  276. A visual language was developed to provide users with a more
  277. convenient and intuitive access to the capabilities offered
  278. by the burgeoning image processing library.  Other libraries
  279. were developed to address problems in digital signal pro-
  280. cessing, numerical analysis, data conversion, and remote
  281. sensing.  A number of new graphical and image display pack-
  282. ages were developed to meet the demands of the users, while
  283. the user interface development system matured in order to
  284. meet the demands of the rapidly growing project.  The dis-
  285. tributed user interface was implemented experimentally, to
  286. support the concept of groupware;  reactions have been
  287. extremely favorable so far.
  288.  
  289. CURRENT STATUS OF KHOROS (Patch Level 5)
  290.  
  291. The Khoros system has been applied to a diverse spectrum of
  292. areas including medical research, ecological studies, remote
  293. sensing, virtual reality, telecommunications, and optics.
  294. The Khoros project continues to evolve as new developments
  295. occur in the continued research and development of software
  296. environments for information processing, data visualization
  297. and software development.  Khoros is being used as a teach-
  298. ing tool at several Universities.  Release 1.0 of Khoros was
  299. offered free of charge via public ftp access on May 10,
  300. 1991; updates have since been provided in patch form.
  301.  
  302.      The documentation for the system is a combination of
  303. on-line help and printed manuals.  The manual is made up of
  304. three separate volumes: User's Manual, Programmer's Manual,
  305. and Reference Guide.  Also, journal playback files are pro-
  306. vided to give the new user "live" demonstrations of the
  307. various applications.
  308.  
  309.      Khoros currently runs on APOLLO, CRAY, DEC, HP, IBM,
  310. OMRON, NeXT, SGI and SUN platforms, and there are porting
  311. efforts for 386/486, CONVEX, DG and MacII platforms. Khoros
  312. is now available via anonymous ftp at no charge (from
  313. pprg.eece.unm.edu, 129.24.24.10, in the /pub/khoros direc-
  314. tory), or a tape and printed documentation can be ordered
  315. for $250.00 (US and Canada) and $350.00 (International).
  316. Support is provided via both a mail user's group and USENET
  317. News in which hundreds of users are now members.  For more
  318. information, send e-mail to khoros-
  319. request@chama.eece.unm.edu.
  320.  
  321.                            - 6 -
  322.  
  323.